/**
 * 封装的axios请求模块
 */
import axios from 'axios'
import router from '@/router'
import { getToken } from '@/utils/auth'
// axios可以配置基础路径
// axios.defaults.baseURL = 'http://api.example.com'
// 调用create方法创建一个axios实例
// 可以针对不通过的url接口创建多个axios实例
const http = axios.create({
  baseURL: 'http://localhost:8888/api/private/v1/'
})
/**
 * axios请求拦截器
 * 所有使用axios发起的请求都会经过这里
 * 可以在这里定制一些业务逻辑
 */
http.interceptors.request.use(function (config) {
  if (config.url !== '/login') {
    // config.headers.Authorization = window.localStorage.getItem('token')
    config.headers.Authorization = getToken()
  }
  return config // 请求通过的规则，如果不return,请求不会发出去
}, function (error) {
  console.log(error)
  return Promise.reject(error)
})
/**
 * 响应拦截器
 */
http.interceptors.response.use(function (response) {
  if (response.data.meta.status === 401) {
    // 跳转到登录页
    // 组件的this.$router就是router/index.js中new VUeRouter实例
    router.replace('/login')
  }
  return response // 这里return的response会作为你真正的结果
}, function (error) {
  return Promise.reject(error)
})
export default http
